package org.tity.sql.code.entity.test;

import org.tity.sql.entity.EntitySet;
import org.tity.sql.data.Rcd;
import org.tity.sql.entity.Entity;
import org.tity.sql.entity.annotations.TableDesc;
import java.io.ObjectStreamClass;
import java.util.List;
import java.util.Arrays;
import org.tity.sql.entity.EntityStructure;
import org.tity.sql.meta.DBDataType;
import org.tity.sql.entity.annotations.ColumnDesc;
import org.tity.sql.entity.annotations.Indexes;
import org.tity.sql.entity.annotations.Index;
import org.tity.sql.entity.annotations.IdGenerator;
import org.tity.sql.dao.DAO;


/*
 * 此类代码为自动生成，请勿修改 !
 */

/**
 * 内容表
 * @author tity-code-builder-powered-by-lifangjie
 * @date 2020-06-05 10:40:33
 **/
@org.tity.sql.entity.annotations.Entity
@TableDesc( name = Content.TABLE , comment = "内容表" )
public class Content extends Entity<Content> {

	/**
	 * serialVersionUID
	*/
	private static final long serialVersionUID  =  ObjectStreamClass.lookup(Content.class).getSerialVersionUID();

	/**
	 * 表名
	*/
	public static final String TABLE = "test_content";

	/**
	 * 字段(数据库) content , 内容 , 内容
	*/
	public static final String CONTENT = "content";

	/**
	 * 字段(数据库) id , ID , ID
	*/
	public static final String ID = "id";

	/**
	 * 全部字段集合,包括数据库和手动添加的
	*/
	public static final List<String> ALL_COLUMNS = Arrays.asList( CONTENT , ID );

	/**
	 * 数据库字段集合
	*/
	public static final List<String> DB_COLUMNS = Arrays.asList( CONTENT , ID );

	/**
	 * 附加字段集合
	*/
	public static final List<String> EXTRA_COLUMNS = Arrays.asList(  );

	/**
	 * 按照当前实体属性清单指定参数集
	*/
	public static final String PARAM_NAMES = "[$:allfields:org.tity.sql.code.entity.test.Content:&]";

	/**
	 * 按照当前实体主键清单指定参数集
	*/
	public static final String PARAM_PK_NAMES = "[$:pkfields:org.tity.sql.code.entity.test.Content:&]";

	/**
	 * 数据库中逻辑True的值
	*/
	private static final Object LOGIC_TRUE ="Y";

	/**
	 * 数据库中逻辑False的值
	*/
	private static final Object LOGIC_FALSE = "N";

	/**
	 * 实体结构解析
	*/
	public static EntityStructure getStructure() {
		return EntityStructure.get(Content.class);
	}

	/**
	 * 构造函数(从数据库构建)
	*/
	public Content(EntitySet ownerSet,Rcd rcd) {
		super(ownerSet,rcd);
		super.logicValues=new Object[] { LOGIC_TRUE , LOGIC_FALSE };
	}

	/**
	 * 构造函数(直接构建)
	*/
	public Content() {
		super(null,null);
		super.logicValues=new Object[] { LOGIC_TRUE , LOGIC_FALSE };
	}

	/**
	 * 获取字段(数据库) content 的值<br/>
	 * 内容
	 * 
	 * @return 返回 content 值
	 */
	@ColumnDesc( isDBField=true , name=CONTENT , nullable=true , table=TABLE , isPK=false , label="内容" , comment="内容" , internal=false , type=DBDataType.STRING )
	public String getContent() {
		return this.getValue(CONTENT,String.class);
	}

	/**
	 * 设置字段(数据库) content 的值<br/>
	 * 内容
	 * 
	 * @param value content 值
	 */
	public Content setContent(String value) {
		super.setValue(CONTENT,value);
		return this;
	}

	/**
	 * 获取字段(数据库) id 的值<br/>
	 * ID
	 * 
	 * @return 返回 id 值
	 */
	@Indexes({
		@Index( name="PRIMARY" , unique = true , primary = true , order = 0) 
	})
	@IdGenerator(name="seq_test_content_id",type=IdGenerator.GeneratorType.SUID)
	@ColumnDesc( isDBField=true , name=ID , nullable=false , table=TABLE , isPK=true , length=64 , label="ID" , comment="ID" , internal=false , type=DBDataType.STRING )
	public String getId() {
		return this.getValue(ID,String.class);
	}

	/**
	 * 设置字段(数据库) id 的值<br/>
	 * ID
	 * 
	 * @param value id 值
	 */
	public Content setId(String value) {
		super.setValue(ID,value);
		return this;
	}

	/**
	 * 生成并设置ID值
	*/
	@Override 
	public Content generateId() {
		super.generateIdInternal(null);
		return this;
	}

	/**
	 * 通过指定的DAO，生成并设置ID值
	*/
	@Override 
	public Content generateId(DAO dao) {
		super.generateIdInternal(dao);
		return this;
	}

}
